This invention relates to digital devices which communicate to each other over a bus; and more particularly, it relates to the input/output mechanisms in those devices which perform the actual transmitting of words to and receiving of words from the bus.
As an example, one of the devices can be a digital computer; and the other device can be a disk. In that case, the mechanism with which the present invention is concerned is that portion of the digital computer which places words on the bus and that portion of the disk which receives words from the bus.
One widely used prior art input/output interface for transmitting digital words over a bus is illustrated in FIG. 1B. This prior art interface is used, for example, in the input/output channels of the IBM 360 family of computers. See FIG. 52B of U.S. Pat. No. 3,400,371.
With the FIG. 1A interface, the transmitting device includes transmitters 10 and 11, and receiver 12; and the receiving device includes receivers 13 and 14, and transmitter 15. In operation, the data word to be transmitted is applied to the input of transmitter 10 and at the same time, a signal SEROUT.sub.T is forced high at the input of transmitter 11.
Those two signals then pass through their respective transmitters, propagate along the bus, and pass through their respective receivers 13 and 14. This occurs during a time interval .DELTA.T. In other words, time interval .DELTA.T is the delay through a transmitter plus the delay across the bus plus the delay through a receiver.
After the receiving device has completed its reception of the data, it forces a signal SERIN.sub.T high at the input of transmitter 15. That signal then passes through transmitter 15, propagates along the bus, and passes through receiver 14 where it becomes signal SERIN.sub.R. This also occurs over time interval .DELTA.T.
In response to signal SERIN.sub.R going high, the sending device removes the word that it is transmitting and forces signal SEROUT.sub.T to a low. Then, after another delay of .DELTA.T, signal SEROUT.sub.R goes low in the receiving device. In response, the receiving device forces signal SERIN.sub.R low; and after delay .DELTA.T, signal SERIN.sub.R goes low in the sending device. Then the sending device can now send another word over the bus.
One problem with this input/output interface is that the maximum rate at which words can be sent is limited by 4.times..DELTA.T. In other words, at least 4.times..DELTA.T seconds must elapse for each word that is transmitted. Thus, for long buses, or slow transmitters, or slow receivers, the maximum rate of transmission is severely limited.
To overcome this problem, the FIG. 1A-1B input/output interface can be modified such that the transmitting device places a new word on the bus in synchronization with every transition of signal SEROUT.sub.T. Thus, word number one is placed on the bus in synchronization with the high to low transition of signal SEROUT.sub.T ; word number three is placed on the bus in synchronization with the next low to high transition of signal SEROUT.sub.T ; etc.
This modified input/output interface is known in the art as a "half handshake", whereas the previously described interface is known as a "full handshake". With the half handshake interface, the minimum time required to transmit one word on the bus is reduced from 4.times..DELTA.T to 2.times..DELTA.T. But a new problem with the half handshake interface is that the transmitting device must be capable of sending words on both edges of the SEROUT.sub.T signal and the receiving device must be capable of receiving data words on both edges of the SEROUT.sub.R signal. This increases the complexity of those devices. Also, the time interval of 2.times..DELTA.T per word is still undesirably long for systems having a long bus or having slow transmitters or slow receivers.
One other prior art input/output interface, by RCA, is illustrated in FIG. 2A; and its operation is illustrated in FIG. 2B. With this interface, the sending device includes transmitters 20, 22, and 23 and includes a receiver 21; while the receiving device includes receivers 24, 26, and 27, and includes a transmitter 25.
In operation, as illustrated in FIG. 2B, the receiving device raises signal REQ.sub.T to tell the sending device that it requests some data. Signal REQ.sub.T passes through transmitter 25, along the bus, and through receiver 21 where it becomes signal REQ.sub.R. Then, in response to signal REQ.sub.R being high, the sending device begins sending data back to the receiving device.
Word number one is sent by the sending device by placing that word on the bus and by raising signal SER.sub.T to a high in synchronization with a clock signal CK.sub.T. These signals all pass through their respective transmitters, travel along the bus, and pass through their respective receivers. Thus, after the delay of .DELTA.T, signal SER.sub.R goes high in the receiving device; and that tells the receiving device that it is being sent a word of data.
In response, the receiving device must then indicate whether it wants another word of data or whether data transmission should stop. If another word of data is requested, then the receiving device leaves signal REQ.sub.T high; but if it wants data transmission to stop, it forces signal REQ.sub.T low.
Signal REQ.sub.T then passes through transmitter 25, travels along the bus, and passes through receiver 21 where it becomes signal REQ.sub.R. This occurs over time interval .DELTA.T. Signal REQ.sub.T is monitored by the sending device; and if it stays high, then another word of data is sent to the receiving device.
This input/output interface is an improvement over the half handshake because all data transmissions occur only on the rising edge of a signal, (i.e., signal CK). However, the minimal time interval for transmitting one word of data is still limited by the factor 2.times..DELTA.T because for each word transmitted, signal SER.sub.T must propagate from the sending device to the receiving device, and signal REQ.sub.T must propagate from the receiving device back to the sending device. Otherwise, the sending device will not know when to stop sending data. Thus, this input/output interface is undeniably slow.
Accordingly, it is a primary object of this invention to provide a digital system wherein data words are transmitted between digital devices over a bus at less than 2.times..DELTA.T seconds per word of data.